home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / PCSSP.LZH / PC-SSP.ZIP / STATDATA.ZIP / TAB1.FOR < prev    next >
Text File  |  1985-12-27  |  4KB  |  142 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C     SUBROUTINE TAB1
  5. C
  6. C     PURPOSE
  7. C        TABULATE FOR ONE VARIABLE IN AN OBSERVATION MATRIX (OR A
  8. C        MATRIX SUBSET), THE FREQUENCY AND PERCENT FREQUENCY OVER
  9. C        GIVEN CLASS INTERVALS. IN ADDITION, CALCULATE FOR THE SAME
  10. C        VARIABLE THE TOTAL, AVERAGE, STANDARD DEVIATION, MINIMUM,
  11. C        AND MAXIMUM.
  12. C
  13. C     USAGE
  14. C        CALL TAB1(A,S,NOVAR,UBO,FREQ,PCT,STATS,NO,NV)
  15. C
  16. C     DESCRIPTION OF PARAMETERS
  17. C        A      - OBSERVATION MATRIX, NO BY NV
  18. C        S      - INPUT VECTOR GIVING SUBSET OF A. ONLY THOSE
  19. C            OBSERVATIONS WITH A CORRESPONDING NON-ZERO S(J) ARE
  20. C            CONSIDERED. VECTOR LENGTH IS NO.
  21. C        NOVAR - THE VARIABLE TO BE TABULATED. NOVAR MUST BE GREATER
  22. C            THAN OR EQUAL TO 1 AND LESS THAN OR EQUAL TO NV.
  23. C            AND UPPER LIMIT OF VARIABLE TO BE TABULATED
  24. C            IN UBO(1), UBO(2) AND UBO(3) RESPECTIVELY. IF
  25. C            LOWER LIMIT IS EQUAL TO UPPER LIMIT, THE PROGRAM
  26. C            USES THE MINIMUM AND MAXIMUM VALUES OF THE VARIABLE.
  27. C            NUMBER OF INTERVALS, UBO(2), MUST INCLUDE TWO CELLS
  28. C            FOR VALUES UNDER AND ABOVE LIMITS. VECTOR LENGTH
  29. C            IS 3.
  30. C        FREQ  - OUTPUT VECTOR OF FREQUENCIES. VECTOR LENGTH IS
  31. C            UBO(2).
  32. C        PCT   - OUTPUT VECTOR OF RELATIVE FREQUENCIES. VECTOR
  33. C            LENGTH IS UBO(2).
  34. C        STATS - OUTPUT VECTOR OF SUMMARY STATISTICS, I.E., TOTAL,
  35. C            AVERAGE, STANDARD DEVIATION, MINIMUM AND MAXIMUM.
  36. C            VECTOR LENGTH IS 5. IF S IS NULL, THEN TOTAL,AVERAGE
  37. C            AND STANDARD DEVIATION = 0, MIN=1.E75 AND MAX=-1.E75
  38. C        NO      - NUMBER OF OBSERVATIONS. NO MUST BE > OR = TO 1
  39. C        NV      - NUMBER OF VARIABLES FOR EACH OBSERVATION. NV MUST
  40. C            BE GREATER THAN OR EQUAL TO 1.
  41. C
  42. C     REMARKS
  43. C        NONE
  44. C
  45. C     SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  46. C        NONE
  47. C
  48. C     METHOD
  49. C        THE INTERVAL SIZE IS CALCULATED FROM THE GIVEN INFORMATION
  50. C        OR OPTIONALLY FROM THE MINIMUM AND MAXIMUM VALUES FOR
  51. C        VARIABLE NOVAR. THE FREQUENCIES AND PERCENT FREQUENCIES ARE
  52. C        THEN CALCULATED ALONG WITH SUMMARY STATISTICS.
  53. C        THE DIVISOR FOR STANDARD DEVIATION IS ONE LESS THAN THE
  54. C        NUMBER OF OBSERVATIONS USED.
  55. C
  56. C     ..................................................................
  57. C
  58.       SUBROUTINE TAB1(A,S,NOVAR,UBO,FREQ,PCT,STATS,NO,NV)
  59.       DIMENSION A(1),S(1),UBO(1),FREQ(1),PCT(1),STATS(1)
  60.       DIMENSION WBO(3)
  61.       DO 5 I=1,3
  62.     5 WBO(I)=UBO(I)
  63. C
  64. C     CALCULATE MIN AND MAX
  65. C
  66.       VMIN=1.0E38
  67.       VMAX=-1.0E38
  68.       IJ=NO*(NOVAR-1)
  69.       DO 30 J=1,NO
  70.       IJ=IJ+1
  71.       IF(S(J)) 10,30,10
  72.    10 IF(A(IJ)-VMIN) 15,20,20
  73.    15 VMIN=A(IJ)
  74.    20 IF(A(IJ)-VMAX) 30,30,25
  75.    25 VMAX=A(IJ)
  76.    30 CONTINUE
  77.       STATS(4)=VMIN
  78.       STATS(5)=VMAX
  79. C
  80. C        DETERMINE LIMITS
  81. C
  82.       IF(UBO(1)-UBO(3)) 40,35,40
  83.    35 UBO(1)=VMIN
  84.       UBO(3)=VMAX
  85.    40 INN=UBO(2)
  86. C
  87. C        CLEAR OUTPUT AREAS
  88. C
  89.       DO 45 I=1,INN
  90.       FREQ(I)=0.0
  91.    45 PCT(I)=0.0
  92.       DO 50 I=1,3
  93.    50 STATS(I)=0.0
  94. C
  95. C        CALCULATE INTERVAL SIZE
  96. C
  97.       SINT=ABS((UBO(3)-UBO(1))/(UBO(2)-2.0))
  98. C
  99. C        TEST SUBSET VECTOR
  100. C
  101.       SCNT=0.0
  102.       IJ=NO*(NOVAR-1)
  103.       DO 75 J=1,NO
  104.       IJ=IJ+1
  105.       IF(S(J)) 55,75,55
  106.    55 SCNT=SCNT+1.0
  107. C
  108. C        DEVELOP TOTAL AND FREQUENCIES
  109. C
  110.       STATS(1)=STATS(1)+A(IJ)
  111.       STATS(3)=STATS(3)+A(IJ)*A(IJ)
  112.       TEMP=UBO(1)-SINT
  113.       INTX=INN-1
  114.       DO 60 I=1,INTX
  115.       TEMP=TEMP+SINT
  116.       IF(A(IJ)-TEMP) 70,60,60
  117.    60 CONTINUE
  118.       IF(A(IJ)-TEMP) 75,65,65
  119.    65 FREQ(INN)=FREQ(INN)+1.0
  120.       GO TO 75
  121.    70 FREQ(I)=FREQ(I)+1.0
  122.    75 CONTINUE
  123.       IF (SCNT)79,105,79
  124. C
  125. C        CALCULATE RELATIVE FREQUENCIES
  126. C
  127.    79 DO 80 I=1,INN
  128.    80 PCT(I)=FREQ(I)*100.0/SCNT
  129. C
  130. C        CALCULATE MEAN AND STANDARD DEVIATION
  131. C
  132.       IF(SCNT-1.0) 85,85,90
  133.    85 STATS(2)=STATS(1)
  134.       STATS(3)=0.0
  135.       GO TO 95
  136.    90 STATS(2)=STATS(1)/SCNT
  137.       STATS(3)=SQRT(ABS((STATS(3)-STATS(1)*STATS(1)/SCNT)/(SCNT-1.0)))
  138.    95 DO 100 I=1,3
  139.   100 UBO(I)=WBO(I)
  140.   105 RETURN
  141.       END
  142. E RELATIVE FREQUENCIES